One of the most fundamental aspects of CAD systems is how the user places data points. To draw a line, for instance, the user must tell the system the location of the two endpoints of that line.
If there is already a feature (such as the endpoint of another line) at the point desired, most systems allow the user to "snap" to such a point. Many even allow sophisticated constructions based on existing features, such as finding the point at which a line and a circular arc intersect. In such cases, present systems are considered sufficient and no improvement is provided by the invention.
When there is no existing feature to snap to, other methods must be used. The most primitive method is for the user to type in the coordinates of the point. In a 2D system, these will generally be expressed in X and Y values, using a traditional Cartesian coordinate system, but there are many other variations. Regardless, this system is very slow and awkward for the user, unless his design has already been drawn on paper.
A more natural way to place a point is to use "graphic input," in which the point is determined by the position of the mouse cursor (or another pointing device). This is much more akin to traditional drawing. Most current systems enhance this system through "dynamics," otherwise known as "rubberbanding" or "cursor following." For instance, if the user has given the first point of a line, the system will display a dynamically adjusting line from that point to the cursor position, appearing to stretch like a rubber band as the user moves the mouse. This additional feedback to the user helps to let the user know what the result of placing a point will be prior to actually placing it. When the user presses a button on the mouse, the point will be placed, fixing the line in position.
One problem with this system is one of accuracy. CAD systems store coordinates with a high degree of precision, while the mouse cursor is no more precise than the screen resolution. This makes points input in such a way unacceptable for most mechanical or architectural design. The use of even-unit roundoff, similar to drawing on graph paper, can partially alleviate this problem.
In a 3D system the problem of point input is much mote complex. Because the mouse cursor is inherently two-dimensional, there must be an additional method of specifying the "depth" of the point. There are various ways of dealing with this, such as allowing the user to preset a working depth, but these solutions tend to have both the lack-of-precision problems associated with cursor input, and the awkwardness and lack of interactivity associated with keying in coordinates. Furthermore, most such systems force the user to have multiple views of his design visible at once (such as a top, front and side view), which wastes valuable screen space as well as being an unnatural way to view an object. The user tends to go back to the primitive method of keying in X, Y, and Z coordinates, tedious as it may be.
Thus, there is a continuing need for improvements in 3D input systems for computer aided design systems in view of the problems with prior art systems.